package com.suning.sawp.intf.companymem;

import java.util.List;

import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.companymem.AdvanceBaseInfo;
import com.suning.sawp.dto.companymem.CompanyMemBaseInfo;
import com.suning.sawp.dto.companymem.CompanyMemRecordInfo;
import com.suning.sawp.dto.companymem.MdmCityInfoDto;
import com.suning.sawp.dto.companymem.QueryRecordDetailResult;
import com.suning.sawp.dto.mainpush.StoreManDto;
import com.suning.sawp.po.companymem.MdmCity;


public interface CompanyMemService {


    /**
     * 企业会员校验单位名称是否存在
     *
     * @param companyName
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<Boolean>  checkCompanyNameExists(String companyName);

    /**
     * 企业会员校验邮箱
     *
     * @param email
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<Boolean> checkEmail(String email);

    /**
     * 批量保存MQ中城市信息
     *
     * @param tmpList
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int[] saveMdmCityInfo(List<MdmCity> tmpList);

    /**
     * 根据父信息查询城市信息
     *
     * @param zoneId
     * @param zoneLevel
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<MdmCityInfoDto>> queryCityInfo(String zoneId, String zoneLevel);

    /**
     * 提交基本信息
     *
     * @param companyMemBaseInfo
     * @param storeManDto
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitBaseInfo(CompanyMemBaseInfo companyMemBaseInfo, StoreManDto storeManDto);

    /**
     * 提交身份认证
     *
     * @param businessLicenceId
     * @param businessLicenceUrl
     * @param custNum
     * @param storeManDto
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitIdentityInfo(String businessLicenceId, String businessLicenceUrl, String custNum,
            StoreManDto storeManDto);

    /**
     * 提交增票认证
     *
     * @param advanceBaseInfo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitAdvanceInfo(AdvanceBaseInfo advanceBaseInfo);

    /**
     * 查询企业会员发展记录列表
     *
     * @param queryDate
     * @param queryParm
     * @param index
     * @param size
     * @param storeManDto 
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CompanyMemRecordInfo>> queryRecordByParm(String queryDate, String queryParm, int index, int size, StoreManDto storeManDto);

    /**
     * 软删除发展记录
     *
     * @param recordId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> deleteRecord(String recordId);

    /**
     * 查询企业会员详情
     *
     * @param recordId
     * @param custNum 
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<QueryRecordDetailResult> quertRecordDetail(String recordId, String custNum);
    
    ReturnMsg<String> submitSensitiveVisitRecord(String mId,String mobileNum, String staffId, String requestIp);

    
}
